package ${packageName}.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import ${packageName}.entity.${ClassName};
<#if tplCategory == "parent">
import ${packageName}.vo.${ClassName}VO;
</#if>

<#-- 接口注释 -->
/**
 * ${functionName}Service接口
 *
 * @author ${author}
 * @since ${datetime}
*/
public interface ${ClassName}Service extends IService<${ClassName}> {

<#if tplCategory == "tree">
    /**
     * 查询${functionName}树列表
     * @param wmsWarehouseParam 查询条件
     * @return ${functionName}树列表
    */
    List<${ClassName}> treeList(${ClassName}Param ${className}Param);

</#if>
<#if tplCategory == "sub">
    /**
    * 根据父ID查询结果
    * @param parentId 父ID
    * @return 采购明细
    */
    List<${ClassName}> getByParentId(Long parentId);

    /**
    * 根据父ID删除
    * @param parentId 父ID
    */
    void deleteByParentId(Long parentId);

    /**
    * 根据父ID集合删除
    * @param parentIds 父ID集合
    */
    void deleteBatchByParentIds(List<Long> parentIds);

</#if>
<#if tplCategory == "parent">
    /**
    * 保存${functionName}
    * @param ${className}VO ${functionName}
    */
    void save${BusinessName}(${ClassName}VO ${className}VO);

    /**
    * 更新${functionName}
    * @param ${className}VO ${functionName}
    */
    void update${BusinessName}(${ClassName}VO ${className}VO);

    /**
    * 删除${functionName}
    * @param ids 主键
    */
    void remove${BusinessName}(List<Long> ids);
<#elseif tplCategory == "crud" || tplCategory == "tree">
    /**
    * 保存${functionName}
    * @param ${className} ${functionName}
    */
    void save${BusinessName}(${ClassName} ${className});

    /**
    * 更新${functionName}
    * @param ${className} ${functionName}
    */
    void update${BusinessName}(${ClassName} ${className});

    /**
    * 删除${functionName}
    * @param ids 主键
    */
    void remove${BusinessName}(List<Long> ids);

</#if>
<#if tplCategory == "children">
    /**
     * 根据父ID查询结果
     * @param parentId 父ID
     * @return 采购明细
    */
    List<${ClassName}> getByParentId(Long parentId);

    /**
     * 根据父ID删除
     * @param parentId 父ID
    */
    void deleteByParentId(Long parentId);

    /**
     * 根据父ID集合删除
     * @param parentIds 父ID集合
    */
    void deleteBatchByParentIds(List<Long> parentIds);
</#if>
<#if tplCategory == "crud" || tplCategory == "parent">

    /**
     * 导入数据
     * @param ${className}List 导入数据列表
     * @param updateSupport 是否更新已有数据
     * @return 导入结果消息
    */
    String importData(List<${ClassName}> ${className}List, boolean updateSupport);
</#if>
}